/**
 * Created by Administrator on 2018/11/25 0025.
 */
const express = require("express");
const router = express.Router();
const utils = require('../../public/utils');
const dictUtils = require('./dict-common');

/*
 * 添加字典类别
 * @params:
 *   value  字典类别名字  （必填）
 *   code  字典类别code  （必填）
 *
 * */
router.post('/addDictKind',async(req,res) => {
    utils.tokenValid(req,res,async() => {
        const value = req.body.value;
        const code = req.body.code;
        const isExit = await dictUtils.find({code},0);
        if(isExit) {
            if(isExit.length) {
                res.send(utils.setJsonStyle('9999', 'code已存在'));
            }else {
                const isSave = await dictUtils.add({value,code},0);
                if(isSave) {
                    res.send(utils.setJsonStyle('0', '添加成功'));
                }else {
                    res.send(utils.setJsonStyle('9999', '添加失败'));
                }
            }
        }else {
            res.send(utils.setJsonStyle('9999', '添加失败'));
        }
    })
})


/*
 * 删除根据id删除字典类别
 * @params:
 *   id  主键 （必填）
 * */
router.post('/deleteDictKind',async(req,res) => {
    utils.tokenValid(req,res,async() => {
        const _id = req.body.id;
        const isDelete = await dictUtils.delete({_id},0);
        if(isDelete) {
            res.send(utils.setJsonStyle('0', '删除成功'));
        }else {
            res.send(utils.setJsonStyle('9999', '删除失败'));
        }
    })
})

/*
 * 根据id更新字典类别
 * @params:
 *   id：主键 （必填）
 *   value  名字  （非必填）
 *   code  字典code  （非必填）
 * */
router.post('/updateDictKind',async(req,res) => {
    utils.tokenValid(req,res,async() => {
        const id = req.body.id;
        const value = req.body.value;
        const code = req.body.code;
        const updateObj = {};
        value && (updateObj.value = value);
        code && (updateObj.code = code);
        const isUpdate = await dictUtils.update(id,updateObj,0);
        if(isUpdate) {
            res.send(utils.setJsonStyle('0', '更新成功'));
        }else {
            res.send(utils.setJsonStyle('9999', '更新失败'));
        }
    })
})


/*
 * 获取字典类别
 * @params:
 *  value  分类名 (非必填)
 *  code   分类code (非必填)
 * */
router.post('/findDictKind',async(req,res) => {
    utils.tokenValid(req,res,async() => {
        const value = req.body.value || '';
        const code = req.body.code || '';
        const findObj = {
            value: {$regex: value},
            code: {$regex: code},
        };
        let pageSize = req.body.pageSize || 10;
        let pageNum = req.body.pageNum-- <= 0 ? 0 : req.body.pageNum--;
        const docs = await dictUtils.find(findObj,0,{},{limit: Number(pageSize),skip: pageSize * pageNum})
        if(docs) {
            const total = await dictUtils.getCount();
            res.send(utils.setJsonStyle('0', 'success',{total,list:docs}));
        }else {
            res.send(utils.setJsonStyle('9999', '获取失败'));
        }
    })
})


module.exports = router;